export function getScrollHeight() {
  let scrollHeight = 0,
    bodyScrollHeight = 0,
    documentScrollHeight = 0
  if (document.body) {
    bodyScrollHeight = document.body.scrollHeight
  }
  if (document.documentElement) {
    documentScrollHeight = document.documentElement.scrollHeight
  }
  scrollHeight = bodyScrollHeight - documentScrollHeight > 0 ? bodyScrollHeight : documentScrollHeight
  return scrollHeight
}

function _getWindowHeight() {
  let windowHeight = 0
  if (document.compatMode == 'CSS1Compat') {
    windowHeight = document.documentElement.clientHeight
  } else {
    windowHeight = document.body.clientHeight
  }
  return windowHeight
}

export function getScrollTop() {
  let scrollTop = 0,
    bodyScrollTop = 0,
    documentScrollTop = 0
  if (document.body) {
    bodyScrollTop = document.body.scrollTop
  }
  if (document.documentElement) {
    documentScrollTop = document.documentElement.scrollTop
  }
  scrollTop = bodyScrollTop - documentScrollTop > 0 ? bodyScrollTop : documentScrollTop
  return scrollTop
}

export function scrollTo() {}

export function scrollToBottom() {
  console.log('scrollTop => ', Math.ceil(getScrollTop()))
  console.log('scrollHeight => ', getScrollHeight())
  // console.log(Math.ceil(_getScrollTop()) + _getWindowHeight())
  if (Math.ceil(getScrollTop()) + _getWindowHeight() >= getScrollHeight()) {
    // console.log('滚动到了底部')
    return true
  }
  return false
}

export function debounce(fn: () => void, wait: number) {
  let timeout: NodeJS.Timeout | null = null
  return function () {
    // console.log(timeout)
    if (timeout !== null) {
      clearTimeout(timeout)
      timeout = null
    }
    timeout = setTimeout(fn, wait)
  }
}
